The present invention relates to a priority selector and, more particularly, to a priority selector for a data processing system in which a plurality of processors share a main memory, wherein the selector allows the processors to use the main memory in accordance with a predetemined priority in response to requests from the processors.
Various conventional priority selectors have been proposed for a data processing system. According to one conventional priority selector, when a plurality of processors use a main memory independently, they output lock requests. When a plurality of lock requests contend, one lock request is selected in accordance with a predetermined priority. In another conventional priority selector, priority is determined in accordance with a so-called LRU (Least Recently Used) scheme. According to this method, the history of selected processors when lock request contentions occurred is managed, and the past history is reflected when the next lock request contention occurs.
In the conventional priority selectors described above, the priority of the processors is preset to be constant. When lock requests are often supplied from processors of higher priorities, a lock request from a processor of lower priority is not accepted. As a result, the lock request success frequencies are not uniform among the processors. In addition, processing at a processor of lower priority must be delayed until its lock request is accepted, resulting in variations in the processing capacities of the processors. When the priority is determined in accordance with the LRU scheme or the like, hardware for compensating for lock contention is excessively large compared to the lock contention frequency.